Skip to content

floppy: force media-change checks when clearing events#800

Open
blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
series/1090195=>linus-master
Open

floppy: force media-change checks when clearing events#800
blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
series/1090195=>linus-master

Conversation

@blktests-ci
Copy link
Copy Markdown

@blktests-ci blktests-ci Bot commented May 6, 2026

Pull request for series with
subject: floppy: force media-change checks when clearing events
version: 1
url: https://patchwork.kernel.org/project/linux-block/list/?series=1090195

floppy_open() tries to make blocking read/write opens perform a fresh
media-change check by clearing drive_state[drive].last_checked before
calling disk_check_media_change().  That timestamp is also updated by
disk_change() when another FDC operation observes that the disk-change
line is clear.

The worker path that calls disk_change() is not serialized by the
floppy_mutex/open_lock pair held by floppy_open().  A worker can therefore
store a recent jiffies value after floppy_open() stores zero and before the
synchronous disk_check_media_change() call reaches floppy_check_events().
The checkfreq throttle can then treat the media-change state as fresh and
skip the hardware poll that the open path explicitly tried to force.

Use the block layer's clearing mask instead of a racy timestamp sentinel.
When DISK_EVENT_MEDIA_CHANGE is being synchronously cleared, bypass the
checkfreq throttle and poll the drive.  Periodic event checks still use
last_checked to avoid unnecessary polling, and floppy_open() no longer
needs to write last_checked itself.

Signed-off-by: Cen Zhang <zzzccc427@gmail.com>
@blktests-ci
Copy link
Copy Markdown
Author

blktests-ci Bot commented May 6, 2026

Upstream branch: 6d35786
series: https://patchwork.kernel.org/project/linux-block/list/?series=1090195
version: 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants